/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    int getDecimalValue(ListNode* head) 
    {
        ListNode* p = head;

        int ans = 0;

        while (p) 
        {
            ans = ans * 2 + p -> val;
            p = p->next;
        }

        return ans;
        
    }
};
